One of the inherent problems in computer systems, from the end user's standpoint, is the trade-off between ease of use (useability) and function (power). Product positioning for programmed computer systems is often illustrated as a two dimensional graph showing useability versus power. The challenge to the developer of computer systems, and in particular, the software, is to maximize both useability and power.
In word processing programs, this problem is illustrated in the variety of methods used to divide a text document into pages. Some word processing programs have attempted to optimize useability, while allowing the user little control or flexibility in determining the location of page breaks. Other word processing programs have attempted to give the user complete control over the location of page breaks, but as a result of this operator control, require extra work on the part of the operator for even the simplest of situations. As will be described in detail below, the technique of this invention provides the user with an easy to use function that does not sacrifice the complete control that the user may require.
The IBM DisplayWrite 1 word processing program is based on an IBM datastream known as the Revisable Form Text Document Control Architecture (RFTDCA). This datastream defines two control characters: Page End and Required Page End. A Page End control ends a page (causes a page break). A Required Page End control has no effect on page breaks. It must be followed by a Page End. It is used to indicate to a "Paginate" function where a page should be ended. A Paginate function is defined as a function that adjusts page breaks. The number of lines placed on each page is based on the size of the text typing area for the page (the page length less the top and bottom margin area).
DisplayWrite 1 provides the user with the following functions:
1. The ability to insert a Page End control (thus ending the current page and causing subsequent text to begin on a new page).
2. The ability to insert a Required Page End control.
3. An Interactive Paginate function, which automatically makes page ending decisions based on the line count for each page or the occurrence of a Required Page End control, and allows the user to view each page ending decision and optionally accept the page break location or reposition the page break location higher or lower on the page. The Interactive Paginate function repositions Page End controls to the accepted page break locations. The user can avoid widow lines (a situation in which the first line of a new paragraph appears as the last line on a page) and orphan lines (a situation in which the last line of a paragraph is the first line of a page) by repositioning the page break up or down one or more lines before accepting the page break location. The Interactive Paginate function always keeps blank lines at the end of a paragraph on the same page as the paragraph (a blank line is never placed as the first line on a page).
These functions allow the user complete control over the page breaks in a document, but have several limitations that affect the useability of the program. First, as the user creates a new document, if he wishes to view the page breaks as he is typing, he must manually insert Page End codes at the appropriate locations. A user may type an entire document without entering any page breaks, but in this case the user must subsequently perform the Interactive Paginate function. The program does not have the capability to automatically make page ending decisions.
Second, to effectively force a short page, the user must insert a Required Page End control and a Page End control, since the Recuired Page End control does not cause a page break by itself.
Additionally, when the document is revised, the user must either manually move each Page End control to readjust page breaks, or perform the Interactive Paginate function again. Page breaks are not automatically adjusted by the program.
The IBM Writing Assistant word processing program is not based on the RFTDCA datastream. It implements a New Page control that has the semantics of a Page End.
Writing Assistant provides the user with the ability to insert a New Page control (thus ending the current page and causing subsequent text to begin on a new page). Additionally Writing Assistant provides an Automatic Paginate function, which automatically makes page ending decisions based on the line count for each page or the occurrence of a New Page control, and causes subsequent text to be placed on the next page. No adjustment is made for blank lines appearing at the top of a page, or widow or orphan lines appearing at the bottom of a page.
These functions automatically handle the pagination for the user, and thus for a user with no more functional requirements, are very easy to use. However, they give the user very little control over the page breaks in a document, and have several functional limitations. First, to prevent widow lines from appearing at the bottom of a page, or to avoid splitting a table or logically related set of lines over two pages, the user must place a New Page control in the document. Since there is no Paginate function that will reposition a New Page control, if the document is subsequently revised, the user must manually remove such controls that are no longer appropriate.
Second, to control the placement of blank lines at the top of a page, the user must delete any blank lines following the paragraph on the preceding page. If the document is subsequentlv revised, the user must manually go back and insert the blank lines between the paragraphs.
It would, therefore, very significantly increase the useability and power of a word processing system to provide both an automatic pagination function, operative during document creation and revision, and an interactive page length adjustment function which allows the automatic replacement of user inserted page end controls.